In the technology driven culture there is an overwhelming amount of data and information in electronic form. The problem with such an abundance of data is the ability to process such data in an efficient manner such that the user can quickly utilize the data. This is particularly noticeable in databases with multiple fields, and in particular, to a networked database with multiple users. The ability to enter, edit, organize and manipulate the data within the database tends to be less than ideal.
As is well known, a list is one of the most basic data structures in programming. It is typically a logically sequential order of elements, any of which can be accessed without restriction. Any element in the list can be removed, and its value can be read or modified. In addition, a new element may be inserted into any location in the list structure.
Physically, the elements of a list can be stored at various locations in memory, and the addresses of each element do not have to correlate in any fashion. The list is linked since each element points to the location of the next item. The dynamic representation of a list is called a linked list. Each element in the list is called a node, and contains two values, wherein the first is the data value that is to be stored. It should be noted that a linked list cannot be accessed randomly.
An Element can be anything, such as a predefined C++ type, a user defined class, or a pointer to one of these. There is a distinction between the logical list and a list data structure, since the internal structure of the class might not be a list at all. A logical list refers to the outside view of the list, so that the internal structure of the list could change without changing the interface. For instance, the internal data structure of the logical list could be based on a singly linked list, a doubly linked list, or a tree, and the interface will remain the same. This provides for flexibility in changing the data structures.
There are numerous database processing systems that attempt to provide satisfactory performance and usability with respect to the database entries. For example, the address and contact fields within a program, such as Microsoft Outlook, that allows for entry fields for names, addresses, email addresses, and telephone numbers are common database tools utilized in many applications. While useful, the fields are typically limited and inflexible and there is little opportunity to easily group and manage a collection of data fields.
What is needed, therefore, is a system for a more efficient way to structure and process data fields in order to organize and manipulate the data content. Such a system should provide the user with flexibility to process the database entries in a manner that is an optimal fit for the desired function.